WSL2嵌入式开发随笔(1) |
您所在的位置:网站首页 › xbox one 开发机 › WSL2嵌入式开发随笔(1) |
WSL2开发嵌入式linux时需要连接USB设备,比如连接USB读卡器等。但是WSL2本身不能像VM虚拟机一样直接进行USB连接切换,需要进行设置。这篇文章记录WSL2连接USB设备的这个设置过程。 参考资料:微软官方的文档,usbipd-win软件用于将连接到windows上的usb设备转接到wsl中。 WSL连接 USB 设备——Microsoft usbipd-win 一、安装usbipd-win点击上面的连接下载usbipd-win软件,软件后缀.msi可以直接安装。安装完成后usbipd软件会像系统添加环境变量,需要重启系统才能生效。 根据微软的文档输入如下命令运行失败,我的系统为:ubuntu22.04 内核版本5.15.79。 微软官方文档命令如下: sudo apt install linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20运行效果如下: 找不到这个包,上网找问题,找到了别人遇到了相同的问题,表示微软的文档写的不够严谨。 参考链接:https://github.com/microsoft/WSL/issues/7652 运行效果: 然后运行第二条命令,需要找到安装的包名称,用自己的包名称替换微软提供的命令中的包名称。 我使用一个读卡器进行测试,插入读卡器,在powershell中输入usbipd wsl list列出所有的usb设备信息。 需要注意的信息是BUSID为4-1,状态STATE为Not attached。 打开wsl的命令行,输入lsusb查看usb设备,此时是没有读卡器连接上的。 切换到powershell中输入,usbipd wsl attach --busid 4-1命令将读卡器连接到wsl中,4-1就是读卡器的BUSID,这个需要根据自己的实际情况进行输入。再次在wsl中输入lsusb查看usb设备,可以看到读卡器已经被识别了。 如果想要断开usb设备和wsl的连接,可以直接拔出设备,也可以使用命令usbipd wsl detach --busid 4-1断开wsl的连接。 四、挂载不上USB读卡器昨天成功的让我的读卡器连接上了wsl,今天正准备编译uboot然后烧进去,结果在/dev/sd*下根本没有我的读卡器设备。又是去找资料,没想到wsl的内核里面竟然没有usb块设备的驱动,微软真是有你的。简直白忙活,这个wsl开发嵌入式还真是『依托答辩』。 根据网络上的资料,git clone了wsl2-kernel过来自己编译,加入了USB块设备的驱动,然后用自己编译的内核启动wsl,最终终于是把我的读卡器识别出来了。不容易。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |